Systems in a network environment communicate information in packets that encapsulate the information according to network communication protocols. Packets transmitted from one node to another node may be transmitted through one or more intervening routers that route the packets throughout the network or between networks. The router typically includes one or more network processors to process the packets. The network processor stores packets in a memory device, such as a Static Dynamic Random Access Memory (SDRAM) and stores packet management information, such as packet queues in a Static Random Access Memory (SRAM). The network processor may include a plurality of packet engines, also known as microengines. Each packet engine executes code, known as microcode, to perform a particular packet processing operations.
A developer writing microcode for the packet engines may use an integrated development tool to debug the code. The developer may create one or more source files that when compiled or assembled produce one or more list files. The developer may then assign each list file to a different packet engine. A linker converts the list files to executable microcode that is loaded by the microcode loader into a packet engine. The developer may then use a debugger function within an integrated development environment (IDE) tool to observe the list file code corresponding to the microcode being executed by the packet engines.
The user may set breakpoints in the source file or list file to debug the program. A breakpoint causes a halt in the execution of the code. A breakpoint set in the source or list file causes the execution to stop when the breakpoint is executed to allow the developer to observe how execution has proceeded up to that breakpoint. Breakpoints separate the program into sections to allow the developer to focus on those sections having problems, whereas sections between breakpoints that do not have problems can be bypassed. An example of an IDE tool used to develop code for network processor packet engines is described in the publication “Intel® IXP2400/IXP2800 Network Processor Development Tools User's Guide”, order no. 278733-007 (Copyright Intel Corporation, July 2003)